草庐IT

java - 理解 ConcurrentHashMap 计算方法的代码

全部标签

ruby-on-rails - RSpec::Mocks::ExampleMethods 的未定义方法 instance_double

我有一个这样的测试用例:describeWorkCardsControllerdoit"something"dowork_card=instance_double(WorkCard,{:started?=>true})#somemorecodeendend当我运行RSpec时,出现错误:undefinedmethod'instance_double'for#根据http://rubydoc.info/github/rspec/rspec-mocks/RSpec/Mocks/ExampleMethods这种方法存在。所以我尝试通过以下方式直接访问它:describeWorkCardsCo

ruby - 使用 $& 全局变量的编程别名方法

我正在尝试为使用Ruby的特殊$&(returnslastregexmatch)的方法起别名。我可以手动执行此操作并且有效:original=String.instance_method(:sub)String.send(:define_method,:sub)do|*args,&block|puts"called"original.bind(self).call(*args,&block)end"foo".sub(/f/){$&.upcase}called#=>"Foo"但是,如果我尝试编写一个为我执行此操作的方法,它会失败:defprogramatic_alias(klass,me

ruby - 试图理解 Ruby .chr 和 .ord 方法

我最近一直在使用Rubychr和ord方法,有几件事我不明白。我当前的项目涉及将单个字符与序数值相互转换。据我了解,如果我有一个带有“A”之类的单个字符的字符串,并且我在其上调用ord我会得到它在ASCII表中的位置,即65。调用逆函数,65.chr给我字符值“A”,所以这告诉我Ruby在某个地方有一个有序字符值的集合,它可以使用这个集合来给我一个特定字符的位置,或者字符在一个特定的位置。我在这方面可能是错误的,如果我错了请纠正我。现在我也了解到Ruby的默认字符编码使用UTF-8,因此它可以处理数千种可能的字符。因此,如果我向它询问这样的事情:'好'.ord我得到了该字符的位置,即2

ruby-on-rails - Ruby strftime '%Z' 方法返回 '0545' 而不是 'NPT'

将我的MacOS升级到最新版本后,Time#strftime方法出现了一些奇怪的问题。Time.now.in_time_zone("Kathmandu").strftime("%Z")#=>'+0545'Time.now.in_time_zone("Bangkok").strftime("%Z")#=>'+07'Time.now.in_time_zone("Nairobi").strftime("%Z")#=>'EAT'Time.now.in_time_zone("NewDelhi").strftime("%Z")#=>'IST'我当前的ruby​​版本是:ruby2.4.1p111(

ruby - 我怎样才能将这段代码转换为元编程,这样我就可以停止复制它了?

我有一个用于building.netsystemswithruby/rake的小但不断增长的框架,我已经研究了一段时间了。在此代码库中,我有以下内容:require'rake/tasklib'defassemblyinfo(name=:assemblyinfo,*args,&block)Albacore::AssemblyInfoTask.new(name,*args,&block)endmoduleAlbacoreclassAssemblyInfoTask此代码遵循的模式在框架中重复了大约20次。每个版本的区别在于正在创建/调用的类的名称(而不是AssemblyInfoTask,它可

iphone - 扩展 restful_authentication/AuthLogic 以支持匿名 iPhone 的延迟登录的最佳方法是什么?

我正在构建一个与RubyonRails后端对话的iPhone应用程序。RubyonRails应用程序还将为Web用户提供服务。restful_authentication插件是提供快速和可定制的用户身份验证的绝佳方式。但是,我希望iPhone应用程序的用户在新列中存储一个由手机的唯一标识符([[UIDevicedevice]uniqueIdentifier])自动创建的帐户。稍后,当用户准备好创建用户名/密码时,帐户将更新为包含用户名和密码,iPhone唯一标识符保持不变。用户在设置用户名/密码之前不能访问该网站。然而,他们可以使用iPhone应用程序,因为该应用程序可以使用它的标识符

ruby-on-rails - 重命名 Rails Controller 的简单方法

这个问题在这里已经有了答案:Howtorenamerailscontrollerandmodelinaproject(8个答案)关闭7年前。有重命名Controller的简单方法吗?我知道的唯一方法是手动完成或生成一个新的Controller,将代码移至旧Controller并销毁旧Controller。似乎必须有一种编程方式来执行此操作。

ruby - 我如何分析 1.9.2 中的 Ruby 代码?

我可以使用什么来分析1.9.2中的代码?我发现所有版本的ruby​​-prof都针对1.9.2存在段错误。例如,当我添加gem"ruby-prof"到我的Rails项目的Gemfile并运行bundlebundleexecruby-profconfig/environment.rb我遇到段错误。城里有新的分析gem吗?有没有办法让ruby​​-prof玩得很好? 最佳答案 不确定它是否有帮助,但我偶然发现了这一点,它可能会增加一点清晰度或引导您走上不同的道路:http://www.devheads.net/development/r

c - 为什么此代码不适用于 ruby​​ 1.9 但适用于 ruby​​ 1.8?

我从ruby​​website下载了最新稳定的ruby​​源代码(1.9.2-p180)并使用MinGW4.5.2-TDM和MSYS在Windows上编译它。为了编译,我运行了shconfigure和make。我完全按照预期获得了msvcrt-ruby191.dll和libmsvcrt-ruby191.dll.a。然后我写了这段代码:#includeintmain(){ruby_init();rb_funcall2(Qnil,rb_intern("p"),1,(VALUE[]){INT2FIX(0)});ruby_finalize();}我用g++编译,链接到ruby​​的dll。当我

ruby-on-rails - AASM 不适用于我的 rails 3 和 ruby​​ 1.8.7(未定义方法 `name' 为 nil :NilClass )

我正在使用Rails3.2.2,带有aasmgem,我有这样的Document模型:classDocumenttruestate:readstate:closedevent:viewdotransitions:to=>:read,:from=>[:unread]endevent:closedotransitions:to=>:closed,:from=>[:read,:unread]endend现在在我的控制台上:➜✗bundleexecrailscLoadingdevelopmentenvironment(Rails3.2.2)irb(main):006:0>Document.cre